Закрыть окно         Список других документов ПЭВМ "Агат"

.нс2

.ктФг.00012-02 35 01

.сс

.цв

АННОТАЦИЯ

.ов

В настоящем документе приведено неформальное описание языков программирования "Бейсик-Агат" и APPLESOFT, поставляемых на гибком магнитном диске (ГМД) ИКП1.

Эти версии в основном совместимы, различия указываются в соответствующих разделах документа.

Описание предназначается для ознакомления с языком "Бейсик", реализованным на ПЭВМ "Агат", для ознакомления с языком "APPLESOFT", который функционирует в режиме "APPLE" ПЭВМ "Агат" исполнения 9, либо при использовании модуля расширения Фг3.089.121 в составе "Агат-7", а также в качестве справочного материала для программистов, знакомых с какой-либо версией языка "Бейсик" по опыту работы или изучавших основы этого языка.

Описание языка не содержит сведений о его реализации. Информация, полезная при разработке сложных программ (использование нестандартной периферии, работа на пределе технических параметров ПЭВМ) содержится в руководстве программиста Фг.00012-02 33 01.

Документ содержит разделы "Общие сведения" и "Элементы языка", в нем описано внешнее представление данных и команд собственно версии языка "Бейсик", средства графических режимов и возможности для программирования в системе команд процессора.

.сс

.цв

СОДЕРЖАНИЕ

.пв

Лист     

.ов

.кс0

1. Общие сведения                                          4

2. Элементы языка                                          6

.кс2

2.1. Представление данных                                6

2.2. Представление операций                              8

2.3. Представление команд                                9

2.4. Средства программирования на языке ассемблера      23

.сс

.кс3

.цв

1.ОБЩИЕ СВЕДЕНИЯ

.ов

Язык программирования "Бейсик" предназначается для использования профессиональными программистами при разработке широкого класса программ на ПЭВМ "Агат", а также для применения неподготовленными пользователями при решении простых вычислительных задач на уровне калькулятора и при эксплуатации ими готовых программных изделий в качестве языка управления заданиями.

Логической основой построения данной версии языка "Бейсик" служат стандартные средства языка "Бейсик", который является его подмножеством.

В интересах удовлетворения предъявленным требованиям проведены следующие расширения:

1) введено раздельное представление для целых и вещественных чисел без ограничений на применимость арифметических и специальных операций над ними;

2) в версии "Бейсик- Агат" введен набор средств, соответствующих возможностям отображения, предоставляемых дисплейной системой ПЭВМ "Агат", а именно:

цветной текстовый режим в нормальном, инверсном и мерцающем изображении, 32*32 символа, 8 цветов;

черно-белый текстовый режим в нормальном или инверсном изображении, 64*32 символа;

графический цветной режим 128*128 элементов разложения, 8 цветов;

графический черно-белый режим 256*256 элементов разложения;

3) в версии "Бейсик- Агат" введен набор средств программирования на машинно-ориентированном языке типа ассемблера, обеспечивающий формирование в памяти ПЭВМ "АГАТ" и исполнение фрагментов программ в системе команд процессора. В набор включены также средства отладки машинных программ.

.ов

Объединение перечисленных средств в одном интерпретаторе позволяет разрабатывать высокоэффективные программы, пользуясь экономичной по памяти записью на средствах высокого уровня для редко используемых ветвей программы и применяя машинное кодирование для ветвей, несущих наибольшую вычислительную нагрузку.

Отладка такой гибридной программы, проводимая на едином исходном тексте, существенно упрощается по сравнению с традиционной технологией включения отдельно отлаженных кодовых элементов общей программы.

Кроме того, использование средств языка высокого уровня в интересах ассемблирования позволяет легко получить весь набор удобств, предоставляемый макрогенераторами с условной сборкой, управляя процессом ассемблирования с помощью обычных условных операторов и операторов перехода на подпрограмму.

Язык программирования "APPLESOFT" предоставляет пользователю возможность работать в нормальном, инверсном или мерцающем изображении в монохромном текстовом режиме 40*24 символа, а так же в графическом цветном режиме 280*192 элемента разложения, 6 цветов.

.сс

.цв

2. ЭЛЕМЕНТЫ ЯЗЫКА

.ов

2.1. Представление данных

2.1.1. Вид записи в программе и диапазоны возможных значений Простых переменных приведены в табл.1.

                                            Tаблица 1

.ов

.ао0

_______________________________________
  Тип       !  Имя   ! Диапазон       !
---------------------------------------
                        -38          38
Вещественные !  АВ   !10  <abs(X)<o10

.ао1
Целые        !  АВ%  !+/-32767 
Строковые    !  АВ¤  !0-255 символов

Примечание: А - буква, В - последовательность из букв и цифр.

2.1.2. Примеры записи переменных с индексами (элементов массивов) приведены в табл.2.

                                          Tаблица 2

.ао0

________________________________
  Tип        ! Имя              
--------------------------------
.ао1
Вещественные !  АВ  ( 3,12,7 )
Целые        !  АВ% ( 3,12,7 )
Строковые    !  АВ¤ ( 3,12,7 )

Размер массива ограничивается доступной памятью.

Идентификация переменных проводится по всем символам имени, длина которого не более 250 символов, и по типу переменной. Таким образом, одному идентификатору могут соответствовать три разные простые переменные и еще три разных массива.

В языке "APPLESOFT" переменная идентифицируетя по первым двум символам имени.

2.1.3. Различаются вещественные, целые и строковые константы.

Вещественные константы представляются в естественном формате, например:

123.456
.53

или в экспоненциальном формате

 1.234 Е-5=0.00001234
-1.234 Е5 = -123400

.ов

Вещественные числа могут быть присвоены вещественным и целым переменным, при присваивании целой переменной засылается целая часть значения, которая должна принадлежать диапазону представления целых.

Целые константы представляются в десятичном или шестнадцатеричном виде (от ¤0 до ¤FFFF ). Числам от ¤0 до ¤7FFF соответствуют положительные целые, от ¤8001 до ¤FFFF - отрицательные от минус 32767 до минус 1. Целого, соответствующего ¤8000, нет, поэтому вблизи этих значений лучше пользоваться вещественными переменными. Переход через ¤8000 вызывает неправильности и для вещественных переменных, которые можно проиллюстрировать следующими истинными условиями:

  ¤8100<¤7F00
  ¤7F00+¤200>¤8100

Целые константы присваиваются целым и вещественным переменным.

В языке "APPLESOFT" целые константы представляются только в десятичном виде.

Строчные константы имеют длину не более 237 символов и могут содержать любые символы, кроме перевода строки и кавычек. Можно проверить, как выполняется PRINT строки, состоящей из многих УПР-Г.

Присваивать строчные константы можно только строковым переменным.

2.2. Представление операций

Арифметические операции:

"=" присваивание (переменная = выражение);
"-" взятие с обратным знаком (унарная), вычитание (бинарная);
"+" сложение;
"*" умножение;
"/" деление;
"^" возведение в степень;

Операции сравнения и логические:

"="   равно;
"<>"  не равно;
"<"   меньше;
">"   больше;
"<="  меньше или равно;
">="  больше или равно;
"NOT" логическое "не";
"AND" логическое "и";
"OR"  логическое "или";

Логическое "истина" тождественно арифметической "1", "ложь" - "0".

Для строковых переменных применимы отношения "=", "<", ">" и "<>".

2.3. Представление команд

Команды "Бейсика" подразделяются на 4 типа:

А - команды, начинающиеся с ключевого слова (см.пп.2.3.1, 2.3.2, 2.3.4, 2.3.5, 2.3.6, DIM из п.2.3.3 данного документа);
В - присваивания, начинающиеся с имени переменной;
C - команды ассемблера, начинающиеся с "!";
D - команды отладочного набора, начинающиеся с "*".

В языке "APPLESOFT" реализованы только команды типов А и В.

Для различения команд типов А и В имена не должны начинаться с фрагментов, тождественных ключевым словам. Имена, употребляемые в качестве меток ассемблерного текста, не могут, кроме того, начинаться с фрагментов, совпадающих с мнемоникой операций системы команд.

Внутри строк программы и директив непосредственного исполнения команды типов А и В разделяются ":", оно же отделяет от них команды типа С. Между собой команды типа С разделяются "!". При записи команд типа D после других команд разделителем также является ":". После команд типа D ":" может быть принято за элемент такой команды (например, * ¤100:), поэтому располагать их в середине строки не рекомендуется.

.сс

Внутри команды слова, при необходимости, разделяются пробелами. Так, в команде

          IF A<B THEN PRINT ABC

1-й, 3-й и 4-й пробелы необязательны, поскольку находятся после ключевых слов. Отсутствие 2-го пробела будет воспринято как ошибка, так как образуется слово BTHEN, неотличимое от правильного имени переменной.

В APPLESOFT все пробелы не обязятальны и имена не должны содержать ключевых слов.

Номера строк программы не должны превышать 65535.

2.3.1. Язык "Бейсик" ПЭВМ "Агат" интерпретирует следующие системные команды:

LOAD - загружает программу с магнитной ленты (МЛ) (бытовой магнитофон);

SAVE - записывает программу на МЛ;

NEW - устанавливает начальное состояние памяти, стирает программу и данные;

RUN - запуск программы со строки с наименьшим номером. Для запуска с промежуточной точки указать номер строки (например, RUN 200);

STOP - останавливает программу ( с выдачей текста строки, в которой произошел останов);

END  - конец программы;

<УПР-Ц> - останавливает программу или выдачу текста программы с выдачей текста строки и подсветкой оператора, на котором произошел останов (в APPLESOFT при останове сообщается только номер строки останова);

CONT - продолжает выполнение программы после STOP или <УПР-Ц>;

TRACE   - включает режим вывода номера строки при выполнении каждого оператора;

NOTRACE - отменяет TRACE;

PEEK(X) - значение байта по адресу Х;

POKE X,Y - заносит Y (0<=Y<=255) по адресу Х;

WAIT X,Y,Z - ожидает пока истинно <Х>=Z под поразрядной маской Y (<X> - содержимое байта по адресу Х). Например, WAIT ¤C000,¤80,0 ожидает любого нажатия на клавиатуре;

CALL X  - вызов кодовой подпрограммы по адресу Х;

USR(X)  - вызов кодовой подпрограммы с передачей значения. Значение Х помещается в ячейках  ¤9D - ¤A2 (157-163). Адрес кодовой подпрограммы должен быть подготовлен в ячейках 11-12, в ячейке 10 - код команды безусловного перехода 76 (¤4C);

& - свободное ключевое слово, служит для расширения набора директив пользователем. Директива пользователя должна быть записана непосредственно за знаком "&", команду перехода на программу обработки необходимо занести в ячейки памяти ¤3F5 - ¤3F7. В момент входа в программу в аккумуляторе первый символ директивы (следующий за "&" символ); признак переноса C = 0, если этот символ - цифра, в ячейках ¤B8,¤B9 - адрес этого символа;

HIMEM:  - устанавливает верхнюю границу памяти под переменные и строки, используемые программой. Значения переменных теряются, установленное значение HIMEM  увеличивать нельзя;

LOMEM:  - то же, для нижней границы памяти (нельзя уменьшать). Исходные значения HIMEM (¤С000) и LOMEM (  ¤1908) устанавливаются директивой ДОС "FP " или CALL ¤E000.

В языке "APPLESOFT" исходные значения HIMEM и LOMEM устанавливаются соотвественно в ¤803 и ¤9600 с ДОС или в ¤803 и ¤C000 без ДОС.

2.3.2. Для редактирования, а также при выводе текстовой информации на экран ВКУ используются следующие команды:

LIST   - выдача текста программы. Команда LIST без параметров выдает весь текст;

LIST 100,200  - выдает строки с номерами 100<=N<=200;

LIST 100,     - выдает строки с номерами не меньше 100;

LIST,200      - выдает строки с номерами не больше 200;

LIST 150      - выдает строку 150;

Описанные ниже модификации команды LIST в языке "APPLESOFT" не реализованы.

LIST "текст" - выдает все строки, содержащие указанный текст (просматривается текст строк в формате вывода командой LIST без редактирующих переводов строки, см. ниже);

LIST "текст1'текст2" - заменяет вхождения фрагментов, указанных в качестве "текст1", на "текст2" и выдает измененные строки. Диапазон поиска и замены может быть указан перед кавычками по тем же правилам, что и для выдачи.

Формат выдачи определяется следующими правилами:

до и после каждого ключевого слова и символа выдается пробел;

перед каждым именем длиной 2 и больше символов выдается пробел;

после номера строки выдается пробел (только в "Бейсик- Агат").

Формат, в котором выполняется поиск и замена фрагментов, может быть проверен директивой LIST" ". Изменение номера строки с помощью замены, например:

   LIST 100"100'150"

не приводит к уничтожению строки 100, а добавляет к программе строку 150.

При выдаче текста без поиска и замены добавляются редактирующие переводы строк и табуляция, обеспечивающие легкость чтения программы;

DEL X,Y  - уничтожает строки программы от номера Х до номера Y включительно;

REM      - комментарий до конца строки, при выполнении игнорируется;

VTAB Y   - устанавливает курсор на строку экрана с номером Y (0<=Y<=31), в APPLESOFT 1<=Y<=24;

HTAB X   - передвигает курсор на Х-ю позицию текущей экранной строки. В режиме 32*32   1<=X<=32, в режиме 64*32   1<=X<=64, в режиме APPLESOFT 1<=х<=40.

TAB(X)  - элемент оператора PRINT , то же, что HTAB, но при X меньше значения текущей горизонтальной позиции экрана не исполняется.

Нумерация строк и позиций на экране сверху вниз и слева направо;

POS(0)  - значение, номер позиции от левого края текстового окна. В скобках значение несущественно;

SPC(X)  - элемент оператора PRINT, вывод Х пробелов;

HOME    - очистка текстового окна, курсор помещается в верхнем левом углу окна;

CLEAR   - чистка переменных. В конце текста программы во внутреннем представлении хранятся все имена переменных длиною 2 и более символов, набранные с клавиатуры в процессе отладки. Среди них могут находиться имена, исключенные из программы, и некоторые ошибочные директивы, которые не влияют на ход исполнения, но "засоряют" память и приводят к неоправданному увеличению длины программы. Директива CLEAR позволяет исключить все лишние имена из внутреннего представления программы. При ее выполнении, кроме того, на экран выдается весь текст программы в формате поиска/замены (в APPLESOFT CLEAR обнуляет переменные без "чистки" и выдачи листинга);

FRE(0)  - значение, объем свободной памяти, выполняется "чистка мусора" в области хранения строк (значение аргумента несущественно);

SPEED=X - задает скорость (0-255) вывода текста.

FLASH   - включает мерцающий режим вывода текста;

INVERSE - включает инверсный (черный по светлому фону) режим вывода текста;

NORMAL  - включает прямой (светлый по черному) режим вывода текста.

Последние три команды в черно-белом алфавитно-цифровом режиме 64х32 символа не исполняются.

.стописание языка1

Закрыть окно         Список других документов ПЭВМ "Агат"